#pragma once
#include "zmqLogic.h"
#include "log.h"

//类似memcpy，但常规memcpy返回的是指向目标dst的指针，而这个cpymem返回的是目标【拷贝数据后】的终点位置，连续复制多段数据时方便
#define cpymem(dst, src, n)   (((u_char *) memcpy(dst, src, n)) + (n))

// 前向声明 zmqLogic 类
class zmqLogic;

//外部全局量声明(在main函数中进行初始化,可以实现在其他文件中合法访问)
extern int           g_daemonized;// 守护进程标记，标记是否启用了守护进程模式，0：未启用，1：启用
extern pid_t         g_pid;// 当前进程的pid
extern const char* 	 g_title;// 保存进程标题
extern pid_t         g_child_pid;// 子进程的pid（守护进程才使用）
extern int           g_stopEvent;//标志程序退出,0不退出1，退出

/**
 * zmq对象设计
 * 1.master主  和	game   通过logic.ipc相连（PAIR→PAIR）
 * 2.master	   和	log主	通过log.ipc相连（PUSH→PULL）
 * 3.game	   和	log主	通过log.ipc相连（PUSH→PULL）
 * 4.master	   和	db主	通过db.ipc相连（DEALER→ROUTER）
 * 5.game	   和	db主	通过db.ipc相连（DEALER→ROUTER）
 * 6.master	   和	net主   通过master.ipc相连（PAIR→PAIR）
 * 7.game	   和   net主	 通过game.ipc相连（PAIR→PAIR）
 * 8.db        和   log主   通过db.ipc相连（PUSH→PULL）
 */